Program Synthesis from Formal Requirements Specifications Using APTS
نویسندگان
چکیده
Formal specifications of software systems are extremely useful because they can be rigorously analyzed, verified, and validated, giving high confidence that the specification captures the desired behavior. To transfer this confidence to the actual source code implementation, a formal link is needed between the specification and the implementation. Generating the implementation directly from the specification provides one such link. A program transformation system such as Paige’s APTS can be useful in developing a source code generator. This paper describes a case study in which APTS was used to produce code generators that construct C source code from a requirements specification in the SCR (Software Cost Reduction) tabular notation. In the study, two different code generation strategies were explored. The first strategy uses rewrite rules to transform the parse tree of an SCR specification into a parse tree for the corresponding C code. The second strategy associates a relation with each node of the specification parse tree. Each member of this relation acts as an attribute, holding the C code corresponding to the tree at the associated node; the root of the tree has the entire C program as its member of the relation. This paper describes the two code generators supported by APTS, how each was used to synthesize code for two example SCR requirements specifications, and what was learned about APTS from these implementations.
منابع مشابه
Program Synthesis from Formal Requirements Speciications Using Apts
Formal speciications of software systems are extremely useful because they can be rigorously analyzed, veriied, and validated, giving high conndence that the speciication captures the desired behavior. To transfer this conndence to the actual source code implementation, a formal link is needed between the speciication and the implementation. Generating the implementation directly from the speci...
متن کاملSeveral Strategies of Reactive System Program Synthesis
Reactive systems, such as operating systems or elevator control systems, are systems that ideally never terminate and are intended to maintain some interaction with their environment. Temporal logic is one of the methods for formal specification descriptions of reactive systems. By describing the formal specifications of reactive systems we can check the consistency of the specifications and wh...
متن کاملA Formal Approach to Domain-Oriented Software Design Environments
This paper describes a formal approach to domain-oriented software design environments, based on declarative domain theories, formal specifications, and deductive program synthesis. A declarative domain theory defines the semantics of a domain-oriented specification language and its relationship to implementation-level subroutines. Formal specification development and reuse is made accessible t...
متن کاملFrom Requirements to Specifications: A Case Study
Formal software verification is concerned with the correctness of programs with respect to some specification. Although there exist examples of the usage of program verification tools and methods for large enterprises, the benefits remain inaccessible to most software developers and companies, because the usage of formal methods incorporates high entry costs: Expensive experts have to be employ...
متن کاملTest Generation from Formal Specifications
Requirements serve as the basis of test generation. Requirements for a program under test can be known to the test generator in a variety of forms. A commonly used form is a plain English language description. The tester generates test cases from these requirements. While requirements written in plain English allow quick understanding and dissemination to a wide audience, they suffer from sever...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Higher-Order and Symbolic Computation
دوره 16 شماره
صفحات -
تاریخ انتشار 2003